/*
 * @Author: 0x9DEFA478
 * @Date: 2021-09-13 20:10:56
 * @LastEditTime: 2021-09-13 21:15:56
 * @LastEditors: 0x9DEFA478
 * @Description: 
 * QQ:2652450237
 * ============================================================================================================================================
 * 
 * 
 * 
 *                                                                                               ************      ****************************
 *                                                                                             ************      ****************************  
 *                                                                                           ************      ****************************    
 *                                                                                         ************      ****************************      
 *                                                                                       ************      ************                        
 *                                                                                     ************      ************                          
 *                                                                                   ************      ************                            
 *                                                                                 ************      ************                              
 *                                                                               ************      ************                                
 *                                                                             ************      ************                                  
 *                                                                           ************      ************                                    
 *                                                                         ************      ************                                      
 *                                                                       ************      ************                                        
 *                                                                     ************      ************                                          
 *                                                                   ************      ************                                            
 *                                                                 ************      ************                                              
 *                                                               ************      ************                                                
 *                                                             ************      ************                                                  
 *                                                           ************      ************                                                    
 *                                                         ************      ************                                                      
 *                                                       ************      ************                                                        
 *                                                     ************      ************                                                          
 *                                                   ************      ************                                                            
 *                                                 ************      ************                                                              
 *                                               ************      ************                                                                
 *                                             ************      ************                                                                  
 *                                           ************      ************                                                                    
 *                                         ************      ************                                                                      
 *                                       ************      ************                                                                        
 *                                     ************      ************                                                                          
 *                                   ************      ************                                                                            
 *                                 ************      ************                                                                              
 *                               ************      ************                                                                                
 *                             ************      ************                                                                                  
 *                           ************      ************                                                                                    
 *                         ************      ************                                                                                      
 *       ****************************      ************                                                                                        
 *     ****************************      ************                                                                                          
 *   ****************************      ************                                                                                            
 * ****************************      ************                                                                                              
 * 
 * 
 * 
 * ============================================================================================================================================
 * 
 */
#include "H_AudioField.h"






/**
 * @brief 进行声场调节
 * @param CenterAmplitudeMultiple 中心通道幅度倍数 如果大于1, 则代表左右通道的倍数为(2-CenterAmplitudeMultiple)
 * @param Data 要转换的数据 输出的数据也在此处
 * @param Length 数据长度  单位:sizeof(H_AudioField_DataType)字节 需为2的倍数
 * @return 无
 */
void H_AudioField_InputOutput(H_AudioField_DataType CenterAmplitudeMultiple,H_AudioField_DataType* Data,int Length){
  
  H_AudioField_DataType ChannelL;
  H_AudioField_DataType ChannelR;
  H_AudioField_DataType ChannelCenter;

  
  H_AudioField_DataType LRAmplitudeMultiple;


  if(CenterAmplitudeMultiple==cH_AudioField_FloatConst(1.0)){
    return;
  }else if(CenterAmplitudeMultiple<cH_AudioField_FloatConst(1.0)){
    LRAmplitudeMultiple=cH_AudioField_FloatConst(1.0);
  }else{
    LRAmplitudeMultiple=cH_AudioField_FloatConst(2.0)-CenterAmplitudeMultiple;
    CenterAmplitudeMultiple=cH_AudioField_FloatConst(1.0);
  }

  Length/=2;


  while(Length>0){
    Length--;

    ChannelL=Data[0];
    ChannelR=Data[1];

    ChannelCenter=(ChannelL+ChannelR)*cH_AudioField_FloatConst(0.5);

    ChannelL-=ChannelCenter;
    ChannelR-=ChannelCenter;

    ChannelCenter*=CenterAmplitudeMultiple;
    ChannelL*=LRAmplitudeMultiple;
    ChannelR*=LRAmplitudeMultiple;

    Data[0]=ChannelCenter+ChannelL;
    Data[1]=ChannelCenter+ChannelR;

    Data=&Data[2];
  }

}





